package 力扣_数学思维题.位运算;

import java.util.HashMap;
import java.util.Map;

public class 只出现一次的数字_136 {

    public int singleNumber(int[] nums) {
        //任何数和0异或，结果都为本身，任何数和本身异或，结果为0
        int single = 0;
        for(int i = 0;i < nums.length;i++){
            single = single ^ nums[i];
        }
        return single;
    }

    /**
     * 哈希表
     */
    public int singleNumber2(int[] nums) {
        Map<Integer, Integer> map = new HashMap<>();
        for(int i = 0;i < nums.length;i++){
            map.put(nums[i], map.getOrDefault(nums[i], 0) + 1);
        }
        for(Map.Entry<Integer, Integer> entry : map.entrySet()){
            if(entry.getValue() == 1){
                return entry.getKey();
            }
        }
        return 0;
    }
}
